/*
 * @Author: 金鱼 823457467@qq.com
 * @Date: 2024-10-14 10:38:16
 * @LastEditors: 金鱼 823457467@qq.com
 * @LastEditTime: 2024-10-14 11:02:42
 * @FilePath: \mock-demo\mock\testMock.ts
 * @Description:
 *
 * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
 */
// 先用 require 导入 mockjs
const Mock = require("mockjs");
const fs = require("fs");
// 随后就可随意测试 mockjs 语法
let id = Mock.mock("@id");
console.log(id);
/**
 * @description: obj函数
 * @return {
 * *
 * @id: 得到随机的id，
 * @username: 得到随机生成中文名字
 * @date: 随机生成日期
 * @avatar: 随机生成图片
 * @description: 随机生成描述
 * @ip: 随机生成ip地址
 * @email: 随机生成email
 * @string 范围内，随机重复字符串次数
 * @number 范围内，随机生成数字
 * @boolean 随机生成布尔值
 * @object 在对象中，抽取随机数个数据
 * @array 在数组中，抽取随机数个数据
 * @name 抽出的每个数据中的对象将轮流从该数组中抽取
 * @regexp 根据正则表达式，随机生成自定义数据
 * @
 * }
 */
const obj = Mock.mock({
  id: "@id()", // 得到随机的id
  username: "@cname()", // 随机生成中文名字
  date: "@date()", // 随机生成日期
  avatar: "@image('200x200','red','#fff','avatar')", // 随机生成图片
  description: "@paragraph()", // 随机生成描述
  ip: "@ip()", // 随机生成ip地址
  email: "@email()", // 随机生成email

  // 范围内，随机重复字符串次数
  "string|1-10": "xxx",
  // 范围内，随机生成数字
  "number|1-100": 100,
  // 随机生成布尔值
  "boolean|1": true,
  // 在对象中，抽取随机数个数据
  "object|1-4": {
    "110000": "北京市",
    "120000": "天津市",
    "130000": "河北省",
    "140000": "山西省",
  },
  // 在数组中，抽取随机数个数据
  "array|1-10": [
    {
      // 抽出的每个数据中的对象将轮流从该数组中抽取
      "name|+1": ["Hello", "Mock.js", "!"],
    },
  ],
  // 根据正则表达式，随机生成自定义数据
  regexp: /[a-z][A-Z][0-9]/,
});

let Random = Mock.Random;
Random.email();
// => "n.clark@miller.io"
Mock.mock("@email");
// => "y.lee@lewis.org"
Mock.mock({ email: "@email" });
// => { email: "v.lewis@hall.gov" }

fs.writeFile("./result.json", JSON.stringify(obj), () => {
  console.log("done");
});
